coreEquiptAcqScript.editPage = {

    getGridParam : function() {
        var _this = this;
        return {
            type : 'grid',
            id : 'core-equipt-acq-script-edit-list-grid',
            url : coreEquiptAcqScript.baseUrl + '/queries/raw',
            columns : coreEquiptAcqScript.getEditListColumns(),
            onCellClick : function(field, row) {
                field === 'id' && _this.loadDetailPage(row.id);
            },
            toolbar : [ {
                type : 'button',
                text : 'GIKAM.BUTTON.INSERT',
                icon : 'add',
                onClick : function() {
                    Gikam.preInsert({
                        modalTitle : 'CORE.MODULE.EQUIPT.ACQSCRIPTS.MODAL.ADD',
                        fields : coreEquiptAcqScript.getBaseInfoFormFields(),
                        url : coreEquiptAcqScript.baseUrl
                    }).done(function(id) {
                        _this.loadDetailPage(id);
                    });
                }
            }, {
                type : 'button',
                text : 'GIKAM.BUTTON.DELETE',
                icon : 'remove-row',
                onClick : function() {
                    Gikam.getComp('core-equipt-acq-script-edit-list-grid').deleteRows(coreEquiptAcqScript.baseUrl);
                }
            } , {
                  type : 'button',
                  text : '测试',
                  icon : 'add',
                  onClick : function() {
                      _this.test();
                  }
              }]
        }
    },

    test : function(){
        var _this = this;
        var grid = Gikam.getComp('core-equipt-acq-script-edit-list-grid');
        var row = grid.getActivedRow();
        if (Gikam.isEmpty(row)) {
             Gikam.toast('GIKAM.TIP.CHOOSE_ONE_ITEM');
             return;
        }
        var paramArray = row.ext$.params.split(',');
        if(paramArray.length>0){
            var fields = paramArray.map(function(value) {
                return {
                    field : value,
                    title : value,
                    validators : ['strLength(0, 100]']
                }
            });
            var height = 110 + 40 * paramArray.length;
            var simpleModal = Gikam.createSimpleModal({
                title : 'LIMS.MODULE.REPORTTEMPLATES.TAB.INPUT_PARAM',
                width : 250,
                height : height,
                showMaxBtn : false,
                bodyStyle : {
                    padding : "0 16px"
                },
                toolbarFormatter : function() {
                    return [{
                        type : 'button',
                        text : 'GIKAM.BUTTON.CONFIRM',
                        icon : 'select',
                        onClick : function() {
                            if (Gikam.isFalse(form.validate())) {
                                return;
                            }
                            _this.testPost(form.getData());
                        }
                    }];
                }
            });
            var form = Gikam.create('form', {
                columns : 1,
                titleWidth : 80,
                fields : fields,
                renderTo : simpleModal.layout.options.center.$dom
            });
        }else{
            _this.testPost({});
        }
    },
    testPost : function(p){
        var _this = this;
        var grid = Gikam.getComp('core-equipt-acq-script-edit-list-grid');
        var row = grid.getActivedRow();
        workspace.window.showMask();
        Gikam.post(coreEquiptAcqScript.baseUrl+'/test',
            Gikam.getJsonWrapper(p, ['coreEquiptAcqScriptServiceImpl', [row]])).done(function (data) {
                console.debug(data);
                 var modal=Gikam.create('modal', {
                    id:'modal',
                    title: '测试结果',
                    width:1100,
                    height:600
                });
                Gikam.create('layout', {
                    renderTo: modal.window.$dom,
                    center : {
                        items:[{
                            type : 'form',
                            fields : [
                                {
                                    text : '结果',
                                    value : data.result,
                                    field : 'result',
                                    type : 'textarea',
                                    readonly : true,
                                    height : 400,
                                    colspan : 2
                                }
                            ]
                        }]
                    },
                });

        }).always(function () {
            workspace.window.closeMask();
        });
    },

    loadDetailPage : function(id) {
        workspace.window.load(coreEquiptAcqScript.baseUrl + '/page/detail' + Gikam.param({
            id : id
        }));
    },

    create : function() {
        var _this = this;
        Gikam.create('layout', {
            id : 'core-equipt-acq-script-edit-list-layout',
            renderTo : workspace.window.$dom,
            center : {
                items : [ this.getGridParam() ]
            }
        });
    },

    init : function() {
        this.create();
    }
};
